export interface IEvents {
	[event: string]: string;
}

export interface IActions {
	[atom: string]: (...args: any[]) => Promise<any> | any;
}

export interface IFeidaoAi {
	readonly data: {
		readonly [attr: string]: any;
	};
	fire(action: string, ...args: any[]): Promise<any>;
	emit(event: string, ...args: any[]): Promise<any>;
}

export interface IFeidaoAiAliAppData {
	readonly [attr: string]: any;
	readonly app: my.App;
	// inner_audio_context?: my.InnerAudioContext;
	// background_audio_manager?: my.BackgroundAudioManager;
	// record_manager?: my.RecorderManager;
	// video_context?: my.VideoContext;
	// camera_context?: my.CameraContext;
}

export interface IFeidaoAiAliPage extends IFeidaoAi {
	readonly data: {
		readonly [attr: string]: any;
		readonly spaceid: string;
		readonly page: my.Page;
		readonly params: { [name: string]: string; };
		readonly fd: IFeidaoAiAliAppData;
	};
}

export interface IFeidaoAiAliappApp extends IFeidaoAi {
	readonly data: IFeidaoAiAliAppData;
}
